1. Field of Invention
The present invention relates generally to the field of encoding video data, and more particularly to using an integrated temporal filter in systems and methods for encoding video data.
2. Discussion of Related Art
Conventional systems and methods of encoding video data in compact digital formats are implemented as special purpose integrated circuits and/or systems of integrated circuits which perform various types of signal processing, as software executing on a special-purpose processor or as software executing on a general-purpose processor.
Digital video signals are representations as currents and voltages within a digital circuit of digital values (conventionally a sequence of binary digits, i.e., bits, organized as bytes, words, picture elements, frames, etc.) that ultimately are decoded to describe the hue, color saturation and luminance of every picture element (pixel) in a sequence of frames. Modern digital video signals have been designed to represent moving sequences of very high resolution frames. Because such sequences of very high resolution frames would require very high bandwidths, i.e., information-carrying capacity, to transmit the large volume of information represented from a source to a display, modern systems encode or compress the signal for transmission.
Digital compression and motion compensation techniques can drastically reduce the required video channel bandwidth. Conventional video codecs encode sequences of frames by, among other functions after performing motion compensation, comparing the last frame sent to the current frame and take the difference.
A conventional temporal filter configuration and a conventional video codec are shown in the block diagrams of FIGS. 6 and 7, respectively.
In brief, the conventional temporal filter configuration, as shown in the block diagram of FIG. 6, receives input frame data 101 into a motion estimation and motion compensation module 603. Input frame data 101 is also received by temporal filter 605 and stored in a memory 606 of old frames. Memory 606 of old frames may hold frames either prior to temporal filtering (i.e., input frame data 101) or after temporal filtering (alternate data path 607), for example using an infinite impulse response (IIR) temporal filter, but in either case the frames are older than the current frame to be operated upon. Old frames are retrieved from the memory 606 during operation of the motion estimation and motion compensation module 603, since old frames form the basis for the estimation and compensation.
In a full-fledged, conventional video codec, as shown in the block diagram of FIG. 7, input frame data 101 is received into a motion estimation and motion compensation module 703, while also being received into a residual calculation module 707. The residual calculation module 707 calculates the difference between a motion-compensated old frame and the actual current frame, referred to as the residual error. The residual error is then encoded by the transform/quantization/entropy coding module 709. The encoded residual error is fed back and decoded by reconstruction module 711, with reference to the old frame. The reconstructed frame is stored in memory 713, for access by the motion estimation and motion compensation module 703. The reconstructed frame retrieved from memory 713 is used for motion estimation and compensation done by module 703.